package niuke.week01;

import java.util.*;

/**
 *每一个线段都有start和end两个数据项，表示这条线段在X轴上从start位置开始到end位置结束。
 * 给定一批线段，求所有重合区域中最多重合了几个线段。
 *
 *
 */
public class SegmentChongHe {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();


        PriorityQueue<EntryInt> que = new PriorityQueue<>(n, new Comparator<EntryInt>() {
            @Override
            public int compare(EntryInt o1, EntryInt o2) {
                return o1.start-o2.start;  //从小到大
            }
        });
        for (int i=0;i<n;i++){
            int start = sc.nextInt();
            int end = sc.nextInt();
            que.add(new EntryInt(start,end));
        }




        System.out.println(solution(que));


    }

//    queSeg：存放开始
    public   static int solution(PriorityQueue<EntryInt> queSeg ){

        int max = Integer.MIN_VALUE;
        //优先队列   小的在堆首  //存放结束
        PriorityQueue<Integer> que = new PriorityQueue<>();

        while (queSeg.size()>0){
            EntryInt poll = queSeg.poll();
            while (que.size()>0 && poll.start>que.peek()){
                que.poll();
            }
            que.add(poll.end);//添加结束元素

            max = Math.max(que.size(), max);
        }


        return  max;
    }

    static class EntryInt {
        public Integer start;
        public Integer end;
        EntryInt(int start,int end){
            this.start = start;
            this.end = end;
        }


        @Override
        public String toString() {
            return this.start+"---->"+this.end;
        }
    }
}
